import request from "@/utils/request";

const Task_BASE_URL = "/api/v1/task";

const TaskAPI = {
  /**
   * 获取任务审核列表
   *
   * @returns 树形表格数据
   */
  getList() {
    return request<any, TaskListVO[]>({
      url: `${Task_BASE_URL}`,
      method: "get",
    });
  },

  /**
   * 获取任务发布列表
   *
   * @returns 树形表格数据
   */
  getPublishList() {
    return request<any, TaskVO[]>({
      url: `${Task_BASE_URL}`,
      method: "get",
    });
  },

  /**
   * 新增
   *
   * @param data 表单数据
   * @returns 请求结果
   */
  create(data: TaskForm) {
    return request({
      url: `${Task_BASE_URL}`,
      method: "post",
      data,
    });
  },

  /**
   * 修改
   *
   * @param id ID
   * @param data 表单数据
   * @returns 请求结果
   */
  update(id: string, data: TaskForm) {
    return request({
      url: `${Task_BASE_URL}/${id}`,
      method: "put",
      data,
    });
  },

  /**
   * 删除
   *
   * @param ids ID，多个以英文逗号(,)分隔
   * @returns 请求结果
   */
  deleteByIds(ids: string) {
    return request({
      url: `${Task_BASE_URL}/${ids}`,
      method: "delete",
    });
  },
};

export default TaskAPI;

/** 查询参数 */
export interface TaskQuery {
  /** 搜索关键字 */
  keywords?: string;
}

/** 任务审核列表 */
export interface TaskListVO {
  /** 创建时间 */
  createTime?: string;
  /** ID */
  id?: string;
  /** 审核时间 */
  auditTime?: string;
  /** 账号 */
  account?: string;
  /** 排序 */
  sort?: number;
  /** 审核状态 */
  status?: number;
  /** 任务名称 */
  task_name?: string;
  /** 任务图片 */
  task_logo?: string;
  /** 头像 */
  avatar?: string;
}

/** 表单类型 */
export interface TaskListForm {
  /** ID(新增不填) */
  id?: string;
  /** 审核时间 */
  auditTime?: string;
  /** 状态(0:未审核；1：已审核)；2：已驳回) */
  status?: number;
}

/** 任务类型 */
export interface TaskVO {
  /** 创建时间 */
  createTime?: string;
  /** ID */
  id?: string;
  /** 名称 */
  name?: string;
  /** 排序 */
  sort?: number;
  /** 图片 */
  logo?: string;
  /** 状态(0:禁用；1：正常) */
  status?: number;
}

/** 表单类型 */
export interface TaskForm {
  /** ID(新增不填) */
  id?: string;
  /** 名称 */
  name?: string;
  /** 图片 */
  logo: string;
  /** 排序 */
  sort?: number;
  /** 状态(0:禁用；1：正常) */
  status?: number;
}
